#include <iostream>
#include <vector>

using namespace std;
//vector容器
//功能：vector数据结构和数组非常相似，也称为单端数组
//vector与普通数组区别：不同之处在于数组是静态空间，而vector可以动态扩展
//动态扩展：并不是在原空间之后续接新空间，而是找更大的内存空间，然后将原数据拷贝新空间，释放原空间
//vector容器的迭代器是支持随机访问的迭代器

//vector构造函数:创建vector容器
//函数原型：
//1、vector<T> v;                		//采用模板实现类实现，默认构造函数
//2、vector(v.begin(), v.end());        //将v[begin(), end())区间中的元素拷贝给本身。
//3、vector(n, elem);                   //构造函数将n个elem拷贝给本身。
//4、vector(const vector &vec);         //拷贝构造函数。

void printV(const vector<int> &v) {
    for (vector<int>::const_iterator  it = v.begin(); it != v.end(); ++it) {
        cout << *it << " ";
    }
    cout << endl;
}

void test() {
    vector<int> v1;//默认构造 无参构造
    for (int i = 0; i < 10; ++i) {
        v1.push_back(i * i);
    }
    printV(v1);

    vector<int> v2(v1.begin(), v1.end());//通过区间的方式进行构造
    printV(v2);

    vector<int> v3(10, 100);//n个elem方式构造
    printV(v3);

    vector<int> v4(v3);//拷贝构造
    printV(v4);
}

int main() {
    test();
    return 0;
}